#include "thread.h"
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <ucontext.h>
#include <sys/types.h>
#include <signal.h>
#include <sys/time.h>
#include <valgrind/valgrind.h>


// taille mot processor
#define TAILLE_LIGNE 10

int main()
{
  int nbProc = 0;

  char * fichiersource = "/proc/cpuinfo";

        //printf("ouverture de fichier source\n");

      FILE * fs = fopen(fichiersource, "r");

        //printf("fichier source ouvert\n");


      if (NULL == fs)
	{
	  printf("impossible d'ouvrir le fichier \n");
	  return;
	}

      char ligne[TAILLE_LIGNE];

      

      //printf("ligne proc =  %s   \n",ligne);


      int i = 0;
      int j = 0;
      int cpt = 0;
      while ( !feof(fs) )
	{
	  cpt++;
	  fgets(ligne, TAILLE_LIGNE, fs);
      int tailletmp = strlen(ligne);
      // pas inutile!!
      // met le contenu de la ligne dans contenu
      while (ligne[tailletmp-1] == '\n' || ligne[tailletmp-1] == '\r')
	{
	  ligne[tailletmp-1] = '\0';
	  tailletmp--;
	}
      char* contenu = (char*)ligne;
      char processor[TAILLE_LIGNE]={};
      //printf("le contenue est %s \n",contenu);
 
      i = 0;
      // tant que l'on ne tombe pas sur le symbole apres le mot processeur on continue
      while( i< TAILLE_LIGNE)
	{
	  //printf("contenu i = %c \n",contenu[i]); 
	  processor[i]=contenu[i];
	  i++;
	}

      if( strcmp(processor,"processor") == 0)
	{
	  //printf("contenu = %s \n",contenu); 
	  //printf("processor = %s \n",processor); 
	  nbProc++;
	}

      for(i=0;i<TAILLE_LIGNE;i++)
	{
	  processor[i]='\0' ;
	}
      i =0;

      

      int proc = nbProc;
      printf("nb proc =  %d   \n",proc);
	}
      fclose(fs);
      return 0;
}
